export default {
  init(cb){
    //todo window.addEventListener('error',fn,true) //捕获模式下可以拿到文件的404 500
    // promise失败了不能通过onerror 有专门的的捕获
    window.onerror = function (message,source,lineno,colno,/**←前面的行和列不准*/error) {
      const info = {
        message: error.message, // 错误提示
        name: error.name, // 错误类型
      };
      console.log(error);
      const stack = error.stack;
      const matchUrl = stack.match(/http:\/\/[^\n]*/)[0];
      info.filename = matchUrl.match(/http:\/\/(?:\S*)\.js/)[0];
      const [,row,column] = matchUrl.match(/:(\d+):(\d+)/);
      info.row = row;
      info.column = column; //todo 上线的时候代码会压缩 so要通过source-map 找到对应的真实的报错位置
      cb(info)
    };
  }
}
